#include<cstdio>
int h,t,z,x,Q,r,q[300001],c[300001],Rc[300001];
int main()
{
for(scanf("%d%d",&x,&Q);Q--;printf("%d\n",r))
{
scanf("%d%d",&z,&x);
if(z==1)++r,q[++t]=x,++c[x],++Rc[x];else
if(z==2)r-=Rc[x],Rc[x]=0;else
for(;h<x;)if(--c[z=q[++h]],Rc[z]>c[z])--r,--Rc[z];
}
}
1391B - Fix You | 988B - Substrings Sort |
312A - Whose sentence is it | 513A - Game |
1711E - XOR Triangle | 688A - Opponents |
20C - Dijkstra | 1627D - Not Adding |
893B - Beautiful Divisors | 864B - Polycarp and Letters |
1088A - Ehab and another construction problem | 1177B - Digits Sequence (Hard Edition) |
1155B - Game with Telephone Numbers | 1284A - New Year and Naming |
863B - Kayaking | 1395B - Boboniu Plays Chess |
1475D - Cleaning the Phone | 617B - Chocolate |
1051B - Relatively Prime Pairs | 95B - Lucky Numbers |
1692D - The Clock | 1553D - Backspace |
1670D - Very Suspicious | 1141B - Maximal Continuous Rest |
1341A - Nastya and Rice | 1133A - Middle of the Contest |
385A - Bear and Raspberry | 1311B - WeirdSort |
1713F - Lost Array | 236B - Easy Number Challenge |